import java.lang.Math;

public class HomeWork08_07{
    public static void main(String[] args){
        VampireNumb vn = new VampireNumb();
        
        int t = 10000;
        while(--t > 1000){
            if(vn.isVampireNumb(t)){
                System.out.println(t);
            }
        }
    }
}

class VampireNumb{
    public boolean isVampireNumb(int itger){
        final int itgerBackUp = itger;
        
        if(itger % 100 == 0){
            return false;
        }
        
        //将该四位数的每一位存入数组
        int[] arr = new int[4];
        for(int i = 0; i < 4; i++){
            int digit = (int)Math.pow(10, 4 - i - 1);
            arr[i] = itger / digit;
            itger %= digit;
        }
        
        /*
            判断是否为吸血鬼数
            主要思想：
            1. 4个位上每两个相乘，判断结果的个位数与原四位数的个位是否相等
                a. 如果相等，只需要为这两个数分别搭配个十位数就行，最多两次
                b. 如果不等，continue
            2. 执行次数最多 3 + 2 + 1 + 0 = 6 次
        */
        for(int i = 0; i < 4; i ++){
            for(int j = i + 1; j < 4; j++){
                //判断两个数相乘的个位数是否与原四位数的个位相等
                if(arr[i] * arr[j] % 10 != itgerBackUp % 10){
                    continue;
                }
                
                //找出另外两个位在数组中的位置索引
                int m = -1;
                int n = -1;
                for(int k = 0; k < 4; k++){
                    if(k != i && k != j){
                        if(m == -1){
                            m = k;
                        }else{
                            n = k;
                        }
                    }
                }
                
                //最多两次组合，就可以判断出是否为吸血鬼数字
                if((arr[m]*10 + arr[i]) * (arr[n]*10 + arr[j]) == itgerBackUp){
                    return true;
                }else if((arr[n]*10 + arr[i]) * (arr[m]*10 + arr[j]) == itgerBackUp){
                    return true;
                }
            }
        }
        return false;
    }
}